package com.openlogic.system.api;

import java.util.List;

import org.noear.nami.annotation.NamiClient;
import org.noear.nami.annotation.NamiMapping;
import org.noear.solon.core.handle.Result;

import com.openlogic.common.core.constants.HttpConstant;
import com.openlogic.common.core.constants.ServiceConstant;
import com.openlogic.common.core.web.domain.entity.SysDept;
import com.openlogic.common.core.web.domain.entity.SysRole;
import com.openlogic.common.core.web.domain.entity.SysUser;
import com.openlogic.common.core.web.domain.model.LoginUser;
import com.openlogic.common.core.web.nami.INamiClientFilter;

/**
 * 远程调用系统服务 - 用户
 * @author xm
 */
@NamiClient(name = ServiceConstant.SERVICE_SYSTEM, path = ServiceConstant.PATH_TO_SYSTEM_USER)
public interface RemoteSysUserService extends INamiClientFilter {

    /**
     * 根据账号查询用户
     * @param userName
     * @param username 
     */
    @NamiMapping(HttpConstant.HTTP_GET)
    Result<LoginUser> getSysUserByUserName(String enterpriseName, String username);

    /**
     * 校验账号是否唯一
     * @param sysUser
     * @return
     */
    Result<Boolean> checkUserNameUnique(SysUser sysUser);

    /**
     * 注册用户
     * @param sysUser
     * @return
     */
    Result<Integer> registerUser(SysUser sysUser);
    
	/**
	 * 描述：查询用户列表
	 * @Title: selectUserList
	 * @param sysUser
	 * @return
	 * @author weiyongpeng
	 * @date 2025年2月22日 上午11:27:50
	 */
    Result<List<SysUser>> selectUserList(SysUser sysUser);
    
	/**
	 * 描述：查询机构列表
	 * @Title: selectDeptList
	 * @param sysDept
	 * @return
	 * @author weiyongpeng
	 * @date 2025年2月22日 上午11:30:15
	 */
    Result<List<SysDept>> selectDeptList(SysDept sysDept);
    
	/**
	 * 描述：查询角色列表
	 * @Title: selectRoleList
	 * @param sysRole
	 * @return
	 * @author weiyongpeng
	 * @date 2025年2月22日 上午11:32:30
	 */
    Result<List<SysRole>> selectRoleList(SysRole sysRole);

}
